Average of Multiple Matrices along Rows
This is an example of computing the elementwise average of the axiswise average of matrices M1 ad M2 along the rows.
from csdl_om import Simulatorfrom csdl import Modelimport csdlimport numpy as np
class ExampleMultipleMatrixAlong1(Model):
def define(self): n = 3 m = 6
# Declare a matrix of shape 3x6 as input M1 = self.declare_variable('M1', val=np.arange(n * m).reshape((n, m)))
# Declare another matrix of shape 3x6 as input M2 = self.declare_variable('M2', val=np.arange(n * m, 2 * n * m).reshape( (n, m)))
# Output the elementwise average of the axiswise average of # matrices M1 ad M2 along the columns self.register_output( 'multiple_matrix_average_along_1', csdl.average(M1, M2, axes=(1, )), )
sim = Simulator(ExampleMultipleMatrixAlong1())sim.run()
print('M1', sim['M1'].shape)print(sim['M1'])print('M2', sim['M2'].shape)print(sim['M2'])print('multiple_matrix_average_along_1', sim['multiple_matrix_average_along_1'].shape)print(sim['multiple_matrix_average_along_1'])
[[ 0. 1. 2. 3. 4. 5.] [ 6. 7. 8. 9. 10. 11.] [12. 13. 14. 15. 16. 17.]]M2 (3, 6)[[18. 19. 20. 21. 22. 23.] [24. 25. 26. 27. 28. 29.] [30. 31. 32. 33. 34. 35.]]multiple_matrix_average_along_1 (3,)[11.5 17.5 23.5]